package com.xmy.cultivate.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xmy.cultivate.entity.RadeData;
import com.xmy.cultivate.respons.RadeDataRs;

import java.util.List;

/**
 * <p>
 * 各项率数据 服务类
 * </p>
 *
 * @author hpiggy
 * @since 2025-04-29
 */
public interface IRadeDataService extends IService<RadeData> {

    /**
     * 教师业绩数据
     */
    IPage<RadeDataRs> getRateByTeacherList(IPage<?> page, Integer yearPart, Integer quarterNum, String schoolId, String teacherName, String fiducialSetId, String subjectsId, String yearClassId, List<Integer> lessonNumList, Integer startLessonNum, Integer endLessonNum, Integer export, String examNum, Integer dataType);

    /**
     * 年级负责人业绩数据（管理数据）
     */
    IPage<RadeDataRs> getRateByYearClassTeacherList(IPage<?> page, Integer yearPart, Integer quarterNum, String schoolId, String teacherName, String fiducialSetId, String subjectsId, String yearClassId, List<Integer> lessonNumList, Integer startLessonNum, Integer endLessonNum, Integer export, String examNum, Integer dataType);

    /**
     * 主管业绩数据（管理数据）
     */
    IPage<RadeDataRs> getRateByChargeTeacherList(IPage<?> page, Integer yearPart, Integer quarterNum, String schoolId, String teacherName, String fiducialSetId, String subjectsId, String yearClassId, List<Integer> lessonNumList, Integer startLessonNum, Integer endLessonNum, Integer export, String departmentId, String examNum, Integer dataType);

    /**
     * 年级负责人业绩数据（个人数据）
     */
    IPage<RadeDataRs> getRateByYearClassTeacherOwnList(IPage<?> page, Integer yearPart, Integer quarterNum, String schoolId, String teacherName, String fiducialSetId, String subjectsId, String yearClassId, List<Integer> lessonNumList, Integer startLessonNum, Integer endLessonNum, Integer export, String examNum, Integer dataType);

    /**
     * 主管业绩数据（个人数据）
     */
    IPage<RadeDataRs> getRateByChargeTeacherOwnList(IPage<?> page, Integer yearPart, Integer quarterNum, String schoolId, String teacherName, String fiducialSetId, String subjectsId, String yearClassId, List<Integer> lessonNumList, Integer startLessonNum, Integer endLessonNum, Integer export, String departmentId, String examNum, Integer dataType);

}
